3aeaec693a8ab708d56540a0a53d5a018320248e,drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java,PackageBuilderTest,testCompilerConfiguration,#,938
Before Change
EclipseJavaCompiler eclipseCompiler = (EclipseJavaCompiler) compiler;
final Field settingsField = eclipseCompiler.getClass().getDeclaredField( "settings" );
settingsField.setAccessible( true );
Map map = (Map) settingsField.get( eclipseCompiler );
assertEquals( "1.4",
map.get( "org.eclipse.jdt.core.compiler.codegen.targetPlatform" ) );
assertEquals( "1.5",
map.get( "org.eclipse.jdt.core.compiler.source" ) );
// test eclipse jdt core with property settings and jdk1.5 source level
conf = new PackageBuilderConfiguration();
conf.setCompiler( PackageBuilderConfiguration.ECLIPSE );
conf.setJavaLanguageLevel( "1.4" );
builder = new PackageBuilder( conf );;
compiler = (JavaCompiler) compilerField.get( builder );
assertSame( EclipseJavaCompiler.class,
compiler.getClass() );
eclipseCompiler = (EclipseJavaCompiler) compiler;
map = (Map) settingsField.get( eclipseCompiler );
assertEquals( "1.5",
map.get( "org.eclipse.jdt.core.compiler.codegen.targetPlatform" ) );
// it cannot be set below 1.5, so if they add 1.4, it still ends up at 1.5.
After Change
// test default is eclipse jdt core
PackageBuilder builder = new PackageBuilder();
final Field dialectField = builder.getClass().getDeclaredField( "dialect" );
dialectField.setAccessible( true );
JavaDialect dialect = ( JavaDialect ) dialectField.get( builder );
final Field compilerField = dialect.getClass().getDeclaredField( "compiler" );